/* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

var i=0;
$(document).ready(function()
{
    
    LoadTableDefinition('data/t1.json');

    window.addEventListener('keydown', function (e) {


        //e.preventDefault();
        //e.stopPropagation();


        $('#log>p>span').html('KeyCode: ' + e.keyCode + ', CharCode: ' + e.charCode + ', Cnt : ' + i + ' ,Which : ' + e.which);



         switch (e.keyCode){
         case 37 :{
             i--;
             if  ($('td.selected').prev('td').length!=0 && $('td.selected>input').length==0) {
             $('td.selected')
             .removeClass('selected')
             .addClass('tbody')
             .prevAll('td:first')
             .removeClass('tbody')
             .addClass('selected');
             }
             break;
         }
         case 39 : {
             i++;
             if ($('td.selected').next('td').length!=0 && $('td.selected>input').length==0)  {
                $('td.selected')
                .removeClass('selected')
                .addClass('tbody')
                .nextAll('td:first')
                .removeClass('tbody')
                .addClass('selected');
                 }
             break;
         }
         case 38 :{
//             var row=$('td.selected').parent('tr').prev('tr');
//             var index=$('td.selected').parent('tr').find('td').index($('td.selected'));
//             $($($(row).find('td'))[index]))
             if ($('td.selected').parent('tr').prev('tr').length!=0 && $('td.selected>input').length==0) {
                 $($($('td.selected').parent('tr').prev('tr'))
                     .find('td')[$('td.selected').parent('tr').find('td').index($('td.selected').removeClass('selected').addClass('tbody'))])
                         .removeClass('tbody')
                         .addClass('selected');
             }
            break;
         }
             case 40 :{
                 if ($('td.selected').parent('tr').next('tr').length!=0 && $('td.selected>input').length==0) {
                     $($($('td.selected').parent('tr').next('tr'))
                         .find('td')[$('td.selected').parent('tr').find('td').index($('td.selected').removeClass('selected').addClass('tbody'))])
                         .removeClass('tbody')
                         .addClass('selected');
                 }
             break;
             }
             case 13 :{
                 var cell=$('td.selected>input');
                 alert(cell.length);
                 if (cell.length!=0){
                     var value=cell.val();
                     cell.replaceWith(value);
                 } else {
                     $('td.selected').wrapInner('<input type="number" class="editor">');
                     $('td.selected>input').val('q');
                     $('td.selected>input').focus();
                 }
//                 $('td.selected').wrapInner('<input type="text" value='+$('td.selected').className+'>');

             }



         default : {
         return true};
         }

        if ([13,37,38,39,40].indexOf(e.keyCode)>0) {
            e.preventDefault ? e.preventDefault() : (e.returnValue = false);
            return false
        }
   });
});

function InsertRow(element)
{
    if (element.hasOwnProperty('Header'))
    {
        if (element.Header.hasOwnProperty('Columns'))
        {
            alert ('"Columns" exisit')
        };
    }
    
};



function LoadTableDefinition(src)
{
    $.getJSON(src,function(data)
    {
        
        var colcnt=data.Header.Columns.length;
        var j=0;
        $('<tr></tr>').appendTo('table#table');
        $.each(data.Header.Columns, function(key,value)
        {
          $('<td width="'+value.width+'%">'+value.caption+'</td>').appendTo('table#table>tbody>tr');
        });
         for (var i = 1; i < 10; i++)
        {            
            $('<tr></tr>').insertAfter('tr:last').data("LineNo",i);
            for (var col = 0; col < colcnt; col++)
            {
          $('<td class="tbody">'+(j++)+'</td>').appendTo('tr:last');
            }
        }
        //$('td:last').removeClass('tbody');
        $('td:last').removeClass('tbody').addClass('selected').html('sssssss');
        //$('td:last'). //.removeClass('tbody').addClass('selected').html('sssssss');
        //$('td:last').html('sssssss');
   /*     $('tr td').click(function ()
        {
            $(this).parent('tr').slideUp();
        });*/
    });
    
}